{{tag>Lucid BROUILLON}}
----

====== touchlib ======

Touchlib est une librairie sous licence BSD qui permet de créer des interfaces tactiles multitouch avec une simple webcam (comme dans cette [[http://www.youtube.com/watch?v=XPu99hfn_OE&feature=related|vidéo]], ou encore [[http://fr.wikipedia.org/wiki/Microsoft_Surface|la table tactile surface]] de Microsoft). L'ennui, c'est que pour l'instant, il n'y a pas de paquet pour ubuntu donc il va falloir compiler.

===== Pré-requis =====

  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
  * Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **[[apt://subversion]]**
  * Avoir [[:opencv#par_compilation|openCV]] installé sur son ordinateur

===== Installation =====
[[:tutoriel:comment_installer_un_paquet|Installez]] les bibliothèques nécessaires à la compilation : **[[apt://libxmu-dev,libxmu-headers,libxmuu-dev,libxpm-dev,libxtrap-dev,libxtst-dev,libxv-dev,xlibs-dev,fftw-dev,fftw2,glutg3,libalut-dev,libalut0,libg2c0,libglui-dev,libglui2c2,freeglut3-dev,glutg3-dev,libgle3,libgle3-dev,libglew-dev,libglew1,libglitz-glx1,libglitz-glx1-dev,libglitz1,libglitz1-dev,libglut3-dev,libsage-dev,libsage0,libxt-dev,libcv-dev,libcv1,libcvaux-dev,libcvaux1,libhighgui-dev,libhighgui1|libxmu-dev libxmu-headers libxmuu-dev libxpm-dev libxtrap-dev libxtst-dev libxv-dev xlibs-dev fftw-dev fftw2 glutg3 libalut-dev libalut0 libg2c0 libglui-dev libglui2c2 freeglut3-dev glutg3-dev libgle3 libgle3-dev libglew-dev libglew1 libglitz-glx1 libglitz-glx1-dev libglitz1 libglitz1-dev libglut3-dev libsage-dev libsage0 libxt-dev libcv-dev libcv1 libcvaux-dev libcvaux1 libhighgui-dev libhighgui1]]**

Récupérez les sources :
  svn co http://touchlib.googlecode.com/svn/trunk/ multitouch
Ensuite lancez la commande :
  cmake .
S'il vous manque une dépendance (dans ce cas OpenGL par exemple), il y aura une ligne de ce genre
  OpenGL not found - some applications may not be built
Installez-la puis relancez la commande. Une fois qu'il n'y aura plus d'erreur tapez :
  make

Si la compilation plante et affiche
  ~/multitouch/src/RectifyFilter.cpp:32: error: ‘printf’ was not declared in this scope
  make[2]: *** [src/CMakeFiles/touchlib.dir/RectifyFilter.o] Erreur 1
  make[1]: *** [src/CMakeFiles/touchlib.dir/all] Erreur 2
  make: *** [all] Erreur 2
Pas de panique, c'est normal :-P. Éditez le fichier
  gedit ~/multitouch/src/RectifyFilter.cpp
Et rajoutez à la première ligne
  #include <stdio.h>
Relancez la compilation. Si ça plante toujours, postez sur le forum

===== Configuration =====

Pour lancer la configuration, tapez
  ./src/configapp 
Vous aurez toute une série de fenêtres qui s'ouvriront. Pour voir comment les configurer, allez (en) [[http://wiki.nuigroup.com/Touchlib_Configapp|ici]]

===== Utilisation =====

Il y a des démos disponibles dans le fichier demos. Vous pouvez maintenant vous amuser.
Par exemple pour lancer l'application smoke via la [[:commande_shell|commande]] suivante :
  ./multitouch/demos/smoke/smoke
  
===== Problèmes connus =====

Si vous avez ce genre de message quand vous lancez ./src/configapp
  VIDIOC_QUERYCTRL: Erreur d'entrée/sortie
  HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
  Unable to stop the stream.: Mauvais descripteur de fichier
  HIGHGUI ERROR: V4L: Pixel format of incoming image is unsupported by OpenCV
Il semblerait que ce soit dû à une incompatibilité entre v4l2 et OpenCV. Allez voir sur [[http://forum.ubuntu-fr.org/viewtopic.php?pid=3618288|ce topic]] pour trouver la solution

===== Voir aussi =====

  * **(en)** [[http://www.nuigroup.com/touchlib/|Site officiel]]
  * **(fr)** [[http://wiki.nuigroup.com/French_translation_Multitouch_terminology|Le multitouch]]
  * **(fr)** [[http://planet.ubuntu-fr.org/tag/Multitouch|Construire un périphérique multitouch pour 30€ environ]]


----
//Contributeurs principaux : [[utilisateurs:samuncle]].//

//Basé sur [[http://wiki.nuigroup.com/Installing_Touchlib_on_Ubuntu|Installing Touchlib on Ubuntu]]//

----
